1. Field of the Invention
The present invention relates generally to an improved data processing system and in particular to a computer implemented method, apparatus, and computer program product for improving performance in a data processing system. Still more particularly, the present invention provides a computer implemented method, apparatus, and computer program product for blocking orders during order processing.
2. Description of the Related Art
Electronic commerce (e-commerce) is the conducting of business communication and transactions over networks. E-commerce includes the buying and selling of goods and services, and the transfer of funds, through digital communications. E-commerce also includes inter-company and intra-company functions that enable commerce and use electronic mail, electronic data interchange, file transfer, fax, video conferencing, workflow, or interaction with a remote computer. Further, e-commerce includes other mechanisms for doing business over a network, such as buying and selling over the Internet, electronic funds transfer, and digital cash.
An e-commerce order processing system is a system responsible for handling an order submitted through e-commerce. An order is a commercial document providing specifications and quantities used to request a seller to supply something in return for payment. Order processing is a series of stages that typically begins with a customer submitting an order and typically ends with fulfillment of the order to the customer. A block for an order is a mechanism used in an order processing system to temporarily stop or suspend the processing of an order submitted by a customer. An e-commerce order processing system may set a block for an order for many possible reasons. A reason for a block for an order specifies why the block exists for the order.
An e-commerce order processing system may set a block for an order automatically or in response to a manual request made by an authorized administrator. Similarly, an e-commerce order processing system may resolve a block for an order automatically or in response to a manual request made by an authorized administrator. The effect of a block for an order is that either all order processing is suspended immediately for the order, or all order processing is suspended once the order processing reaches a pre-defined stage in the order processing for the order. A block for an order is resolved when the reason for blocking the order no longer exists, such that the block for the order is no longer enforced. At any given time, an order may be blocked for multiple reasons, in which case all the reasons must be resolved before the order processing is resumed.
One problem that many e-commerce processing systems encounter in blocking orders occurs when the blocked orders clog the e-commerce order processing system. Often these clogs of blocked orders occur at stages in the order processing that bear no relation to the reason for the block for the order. In many situations, even when an order is blocked, no need exists to stop the order processing. For example, an e-commerce order processing system may set a block for all orders at a given fulfillment center because the shipping bay at the fulfillment center is inoperative due to a malfunction. In this situation, there is no reason to prevent order processing from continuing all the way through inventory allocation, and perhaps even through picking and packing. However, traditional e-commerce order processing systems set blocks for orders that hold the orders, either at the stage in order processing at which the block is set, or at some pre-defined stage in the order processing. The processing for an order ceases, or holds, when a block for the order stops the execution of an order processing stage for the order. A shipping bay malfunction hold on the order processing may result in no picking or packing for any order even though picking and packing may be processed for any order. Another problem exists for traditional e-commerce order processing systems that use a pre-defined stage in the order processing for blocking an order. If an order is already past the pre-defined stage in the order processing for blocking an order, the order cannot be blocked at all.
Traditional e-commerce order processing systems deal with these and other problems in a variety of ways. Personnel manually interpret order blocks, using instructions regarding when to ignore blocks for orders and when to apply blocks for orders. This manual interpretation method applies only to a manual interpretation e-commerce order processing system, which is highly inefficient. An alternative to manual interpretation is the modification of the software in a traditional e-commerce order processing system to create a block at an appropriate stage in the order processing, a stage beyond which the order processing cannot proceed. However, the software modification method has several disadvantages.
Modifications to the software in a traditional e-commerce order processing system make the resulting software very complex, as the blocking logic is spread throughout the software. Therefore, software modification requires the blocking logic to be aware of order processing. This requirement reduces software modularity and increases connascence between order processing modules and order blocking modules. Connascence occurs between order processing modules and order blocking modules when a modification in one order processing module may require a modification in the corresponding order blocking module to preserve overall correctness, or when a modification in one order blocking module may require a modification in the corresponding order processing module to preserve overall correctness. Furthermore, connascence occurs between order processing modules and order blocking modules when a modification to software in a traditional e-commerce order processing system may require modification to both an order processing module and a corresponding order blocking module together in order to preserve overall correctness. Therefore, modifications to the software in a traditional e-commerce order processing system make the resulting software both difficult to enhance and difficult to maintain.
Additionally, modifications to the software in a traditional e-commerce order processing system do not offer any level of configurability. For example, if a seller decides to change the rules for what happens when a traditional e-commerce order processing system sets a block for an order, further modifications are difficult to implement. Therefore, neither the manual interpretation method nor the software modification method is very effective.